/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package futco.patrones.syscand.managedbean.gestionar;

import futco.patrones.syscand.entidades.Usuario;
import futco.patrones.syscand.facade.UsuarioFacade;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import org.apache.log4j.Logger;

/**
 *
 * @author casewaredes03
 */
@ManagedBean
@ViewScoped
public class UsuarioManagedBean implements Serializable {

    @EJB
    private UsuarioFacade facade;
    private Usuario usuario;
    private Usuario usuarioSeleccionado;
    private List<Usuario> usuarios;
    protected static Logger log = Logger.getLogger(UsuarioManagedBean.class);

    public void guardarRegistro(ActionEvent actionEvent) {
        log.info("guardarRegistro");
        log.debug(actionEvent);
        try {
            log.info(usuario);
            facade.guardar(usuario);
            usuarios = facade.buscarTodo();
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Información Guardada", usuario.toString()));
            usuario = new Usuario();
        } catch (Exception e) {
            log.error(e.getCause(), e);

        }
    }

    public void nuevoRegistro(ActionEvent actionEvent) {
        log.info("nuevoRegistro");
        try {
            usuario = new Usuario();
        } catch (Exception e) {
            log.error(e.getCause(), e);

        }
    }

    public void eliminar(ActionEvent actionEvent) {
        facade.eliminar(usuario);
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Información Eliminadad", usuario.toString()));
        usuarios = facade.buscarTodo();
        usuario=new Usuario();
    }

    public void seleccionaRegistro() {
        log.info("seleccionaRegistro");
        try {
            usuario = usuarioSeleccionado;

        } catch (Exception e) {
            log.error(e.getCause(), e);

        }
    }

    /** Creates a new instance of UsuarioManagedBean */
    public UsuarioManagedBean() {
        usuario = new Usuario();
        usuarios = new LinkedList<Usuario>();
    }

    @PostConstruct
    public void init() {
        usuarios = facade.buscarTodo();
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public List<Usuario> getUsuarios() {
        return usuarios;
    }

    public void setUsuarios(List<Usuario> usuarios) {
        this.usuarios = usuarios;
    }

    public Usuario getUsuarioSeleccionado() {
        return usuarioSeleccionado;
    }

    public void setUsuarioSeleccionado(Usuario usuarioSeleccionado) {
        this.usuarioSeleccionado = usuarioSeleccionado;
    }
}
